# -*- coding:utf-8 -*-


from django.db import models
from Apps.common.custommodel import CustomModel
from .corp import Corp
from Apps.User.models import User


class CorpUser(CustomModel):
    name = models.CharField(null=True, blank=True, default='', max_length=64, verbose_name="成员名称")
    mobile = models.CharField(null=True, blank=True, default='', max_length=20, verbose_name="手机号码")
    gender = models.CharField(null=True, blank=True, default='0', max_length=4, verbose_name="性别。0表示未定义，1表示男性，2表示女性")
    biz_mail = models.CharField(null=True, blank=True, default='', max_length=100, verbose_name="企业邮箱")
    status = models.CharField(null=True, blank=True, max_length=4, verbose_name="激活状态: 1=已激活，2=已禁用，4=未激活，5=退出企业。")
    avatar = models.TextField(null=True, blank=True, verbose_name='头像')
    thumb_avatar = models.TextField(null=True, blank=True, verbose_name='头像缩略图')
    user = models.ForeignKey(to=User, on_delete=models.CASCADE, db_constraint=False, verbose_name="成员UserID")
    corp = models.ForeignKey(to=Corp, on_delete=models.CASCADE, db_constraint=False, verbose_name='企业ID')

    class Meta:
        db_table = "corpuser"
        verbose_name = '企业员工表'
        verbose_name_plural = verbose_name
        ordering = ('-create_time',)

    def __str__(self):
        return self.name

    """


    {
        "errcode":0,
        "errmsg":"ok",
        "userid":"XieLei",
        "name":"谢磊",
        "department":[
            1
        ],
        "position":"",
        "mobile":"17782384897",
        "gender":"1",
        "email":"",
        "avatar":"https://wx.qlogo.cn/mmhead/ibLButGMnqJPibsEASGvGqfETGYc5sdukNHly5F8jBTvbwHownfQxYgg/0",
        "status":1,
        "isleader":0,
        "extattr":{
            "attrs":[

            ]
        },
        "telephone":"",
        "enable":1,
        "hide_mobile":0,
        "order":[
            0
        ],
        "main_department":1,
        "qr_code":"https://open.work.weixin.qq.com/wwopen/userQRCode?vcode=vc21b91ef092b20bd0",
        "alias":"",
        "is_leader_in_dept":[
            0
        ],
        "thumb_avatar":"https://wx.qlogo.cn/mmhead/ibLButGMnqJPibsEASGvGqfETGYc5sdukNHly5F8jBTvbwHownfQxYgg/132",
        "direct_leader":[

        ],
        "biz_mail":"xielei@gotest.wecom.work"
    }
    userid	是	成员UserID。对应管理端的帐号，企业内必须唯一。长度为1~64个字节。只能由数字、字母和“_-@.”四种字符组成，且第一个字符必须是数字或字母。系统进行唯一性检查时会忽略大小写。
    name	是	成员名称。长度为1~64个utf8字符
    alias	否	成员别名。长度1~64个utf8字符
    mobile	否	手机号码。企业内必须唯一，mobile/email二者不能同时为空
    department	是	成员所属部门id列表，不超过100个
    order	否	部门内的排序值，默认为0，成员次序以创建时间从小到大排列。个数必须和参数department的个数一致，数值越大排序越前面。有效的值范围是[0, 2^32)
    position	否	职务信息。长度为0~128个字符
    gender	否	性别。1表示男性，2表示女性
    email	否	邮箱。长度6~64个字节，且为有效的email格式。企业内必须唯一，mobile/email二者不能同时为空
    biz_mail	否	企业邮箱。仅对开通企业邮箱的企业有效。长度6~64个字节，且为有效的企业邮箱格式。企业内必须唯一。未填写则系统会为用户生成默认企业邮箱（由系统生成的邮箱可修改一次，2022年4月25日之后创建的成员需通过企业管理后台-协作-邮件-邮箱管理-成员邮箱修改）
    telephone	否	座机。32字节以内，由纯数字、“-”、“+”或“,”组成。
    is_leader_in_dept	否	个数必须和参数department的个数一致，表示在所在的部门内是否为部门负责人。1表示为部门负责人，0表示非部门负责人。在审批(自建、第三方)等应用里可以用来标识上级审批人
    direct_leader	否	直属上级UserID，设置范围为企业内成员，可以设置最多5个上级
    avatar_mediaid	否	成员头像的mediaid，通过素材管理接口上传图片获得的mediaid
    enable	否	启用/禁用成员。1表示启用成员，0表示禁用成员
    extattr	否	自定义字段。自定义字段需要先在WEB管理端添加，见扩展属性添加方法，否则忽略未知属性的赋值。
    extattr.type	是	属性类型: 0-文本 1-网页 2-小程序
    extattr.name	是	属性名称： 需要先确保在管理端有创建该属性，否则会忽略
    extattr.text	否	文本类型的属性
    extattr.text.value	是	文本属性内容，长度限制64个UTF8字符
    extattr.web	否	网页类型的属性，url和title字段要么同时为空表示清除该属性，要么同时不为空
    extattr.web.url	是	网页的url,必须包含http或者https头
    extattr.web.title	是	网页的展示标题,长度限制12个UTF8字符
    to_invite	否	是否邀请该成员使用企业微信（将通过微信服务通知或短信或邮件下发邀请，每天自动下发一次，最多持续3个工作日），默认值为true。
    external_profile	否	成员对外属性，字段详情见对外属性
    external_position	否	对外职务，如果设置了该值，则以此作为对外展示的职务，否则以position来展示。长度12个汉字内
    nickname	否	视频号名字（设置后，成员将对外展示该视频号）。须从企业绑定到企业微信的视频号中选择，可在“我的企业”页中查看绑定的视频号
    address	否	地址。长度最大128个字符
    main_department	否	主部门

    """

    """
    biz_mail = models.CharField(null=True, blank=True, max_length=100, verbose_name="企业邮箱")

        #
        userid = models.CharField(null=True, blank=True, max_length=30, verbose_name="成员UserID")
        # ?手机号的长度，要加+186？
        mobile = models.CharField(null=True, blank=True, max_length=20, verbose_name="手机号码")

        gender = models.IntegerField(null=True, blank=True, verbose_name="性别,1表示男性，2表示女性")

        name = models.CharField(null=True, blank=True, max_length=64, verbose_name="成员名称")

        status = models.IntegerField(null=True, blank=True, verbose_name="激活状态: 1=已激活，2=已禁用，4=未激活，5=退出企业。")
        qr_code = models.CharField(null=True, blank=True, max_length=100, verbose_name="员工个人二维码")

    """
